home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 April: Mac OS SDK / Dev.CD Apr 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / PInterfaces / Lists.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  10.4 KB  |  348 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Lists.p
  3.  
  4.      Contains:    List Manager Interfaces.
  5.  
  6.      Version:    Technology:    Mac OS 8
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1985-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT Lists;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __LISTS__}
  27. {$SETC __LISTS__ := 1}
  28.  
  29. {$I+}
  30. {$SETC ListsIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __MACTYPES__}
  34. {$I MacTypes.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __CONTROLS__}
  37. {$I Controls.p}
  38. {$ENDC}
  39.  
  40.  
  41. {$PUSH}
  42. {$ALIGN MAC68K}
  43. {$LibExport+}
  44.  
  45.  
  46. TYPE
  47.     Cell                                = Point;
  48.     CellPtr                             = ^Cell;
  49.     ListBounds                            = Rect;
  50.     ListBoundsPtr                         = ^ListBounds;
  51.     DataArray                            = PACKED ARRAY [0..32000] OF CHAR;
  52.     DataPtr                                = ^DataArray;
  53.     DataHandle                            = ^DataPtr;
  54. {$IFC TYPED_FUNCTION_POINTERS}
  55.     ListSearchProcPtr = FUNCTION(aPtr: Ptr; bPtr: Ptr; aLen: INTEGER; bLen: INTEGER): INTEGER;
  56. {$ELSEC}
  57.     ListSearchProcPtr = ProcPtr;
  58. {$ENDC}
  59.  
  60. {$IFC TYPED_FUNCTION_POINTERS}
  61.     ListClickLoopProcPtr = FUNCTION: BOOLEAN;
  62. {$ELSEC}
  63.     ListClickLoopProcPtr = Register68kProcPtr;
  64. {$ENDC}
  65.  
  66.     ListSearchUPP = UniversalProcPtr;
  67.     ListClickLoopUPP = UniversalProcPtr;
  68. {$IFC NOT TARGET_OS_MAC }
  69. { QuickTime 3.0 }
  70.     ListNotification                    = LONGINT;
  71.  
  72. CONST
  73.     listNotifyNothing            = 'nada';                        {  No (null) notification }
  74.     listNotifyClick                = 'clik';                        {  Control was clicked }
  75.     listNotifyDoubleClick        = 'dblc';                        {  Control was double-clicked }
  76.     listNotifyPreClick            = 'pclk';                        {  Control about to be clicked }
  77.  
  78. {$ENDC}
  79.  
  80.  
  81. TYPE
  82.     ListRecPtr = ^ListRec;
  83.     ListRec = RECORD
  84.         rView:                    Rect;
  85.         port:                    GrafPtr;
  86.         indent:                    Point;
  87.         cellSize:                Point;
  88.         visible:                ListBounds;
  89.         vScroll:                ControlHandle;
  90.         hScroll:                ControlHandle;
  91.         selFlags:                SInt8;
  92.         lActive:                BOOLEAN;
  93.         lReserved:                SInt8;
  94.         listFlags:                SInt8;
  95.         clikTime:                LONGINT;
  96.         clikLoc:                Point;
  97.         mouseLoc:                Point;
  98.         lClickLoop:                ListClickLoopUPP;
  99.         lastClick:                Cell;
  100.         refCon:                    LONGINT;
  101.         listDefProc:            Handle;
  102.         userHandle:                Handle;
  103.         dataBounds:                ListBounds;
  104.         cells:                    DataHandle;
  105.         maxIndex:                INTEGER;
  106.         cellArray:                ARRAY [0..0] OF INTEGER;
  107.     END;
  108.  
  109.     ListPtr                                = ^ListRec;
  110.     ListHandle                            = ^ListPtr;
  111. {  ListRef is obsolete.  Use ListHandle.  }
  112.     ListRef                                = ListHandle;
  113.  
  114.  
  115.  
  116. CONST
  117.                                                                 {  ListRec.listFlags bits }
  118.     lDoVAutoscrollBit            = 1;
  119.     lDoHAutoscrollBit            = 0;
  120.  
  121.                                                                 {  ListRec.listFlags masks }
  122.     lDoVAutoscroll                = 2;
  123.     lDoHAutoscroll                = 1;
  124.  
  125.  
  126.                                                                 {  ListRec.selFlags bits }
  127.     lOnlyOneBit                    = 7;
  128.     lExtendDragBit                = 6;
  129.     lNoDisjointBit                = 5;
  130.     lNoExtendBit                = 4;
  131.     lNoRectBit                    = 3;
  132.     lUseSenseBit                = 2;
  133.     lNoNilHiliteBit                = 1;
  134.  
  135.  
  136.                                                                 {  ListRec.selFlags masks }
  137.     lOnlyOne                    = -128;
  138.     lExtendDrag                    = 64;
  139.     lNoDisjoint                    = 32;
  140.     lNoExtend                    = 16;
  141.     lNoRect                        = 8;
  142.     lUseSense                    = 4;
  143.     lNoNilHilite                = 2;
  144.  
  145.  
  146.                                                                 {  LDEF messages }
  147.     lInitMsg                    = 0;
  148.     lDrawMsg                    = 1;
  149.     lHiliteMsg                    = 2;
  150.     lCloseMsg                    = 3;
  151.  
  152.  
  153.  
  154.  
  155.  
  156. TYPE
  157. {$IFC TYPED_FUNCTION_POINTERS}
  158.     ListDefProcPtr = PROCEDURE(lMessage: INTEGER; lSelect: BOOLEAN; VAR lRect: Rect; lCell: Cell; lDataOffset: INTEGER; lDataLen: INTEGER; lHandle: ListHandle);
  159. {$ELSEC}
  160.     ListDefProcPtr = ProcPtr;
  161. {$ENDC}
  162.  
  163.     ListDefUPP = UniversalProcPtr;
  164.  
  165. CONST
  166.     uppListSearchProcInfo = $00002BE0;
  167.     uppListClickLoopProcInfo = $00000012;
  168.     uppListDefProcInfo = $000EBD80;
  169.  
  170. FUNCTION NewListSearchProc(userRoutine: ListSearchProcPtr): ListSearchUPP;
  171.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  172.     INLINE $2E9F;
  173.     {$ENDC}
  174.  
  175. FUNCTION NewListClickLoopProc(userRoutine: ListClickLoopProcPtr): ListClickLoopUPP;
  176.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  177.     INLINE $2E9F;
  178.     {$ENDC}
  179.  
  180. FUNCTION NewListDefProc(userRoutine: ListDefProcPtr): ListDefUPP;
  181.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  182.     INLINE $2E9F;
  183.     {$ENDC}
  184.  
  185. FUNCTION CallListSearchProc(aPtr: Ptr; bPtr: Ptr; aLen: INTEGER; bLen: INTEGER; userRoutine: ListSearchUPP): INTEGER;
  186.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  187.     INLINE $205F, $4E90;
  188.     {$ENDC}
  189.  
  190. FUNCTION CallListClickLoopProc(userRoutine: ListClickLoopUPP): BOOLEAN;
  191.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  192.     {To be implemented:  Glue to move parameters into registers.}
  193.     {$ENDC}
  194.  
  195. PROCEDURE CallListDefProc(lMessage: INTEGER; lSelect: BOOLEAN; VAR lRect: Rect; lCell: Cell; lDataOffset: INTEGER; lDataLen: INTEGER; lHandle: ListHandle; userRoutine: ListDefUPP);
  196.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  197.     INLINE $205F, $4E90;
  198.     {$ENDC}
  199.  
  200.  
  201. {$IFC NOT TARGET_OS_MAC }
  202. { QuickTime 3.0 }
  203.  
  204. TYPE
  205. {$IFC TYPED_FUNCTION_POINTERS}
  206.     ListNotificationProcPtr = PROCEDURE(theList: ListHandle; notification: ListNotification; param: LONGINT);
  207. {$ELSEC}
  208.     ListNotificationProcPtr = ProcPtr;
  209. {$ENDC}
  210.  
  211. PROCEDURE LSetNotificationCallback(callBack: ListNotificationProcPtr; lHandle: ListHandle); C;
  212. {$ENDC}
  213.  
  214.  
  215.  
  216. FUNCTION LNew({CONST}VAR rView: Rect; {CONST}VAR dataBounds: ListBounds; cSize: Point; theProc: INTEGER; theWindow: WindowPtr; drawIt: BOOLEAN; hasGrow: BOOLEAN; scrollHoriz: BOOLEAN; scrollVert: BOOLEAN): ListHandle;
  217.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  218.     INLINE $3F3C, $0044, $A9E7;
  219.     {$ENDC}
  220. PROCEDURE LDispose(lHandle: ListHandle);
  221.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  222.     INLINE $3F3C, $0028, $A9E7;
  223.     {$ENDC}
  224. FUNCTION LAddColumn(count: INTEGER; colNum: INTEGER; lHandle: ListHandle): INTEGER;
  225.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  226.     INLINE $3F3C, $0004, $A9E7;
  227.     {$ENDC}
  228. FUNCTION LAddRow(count: INTEGER; rowNum: INTEGER; lHandle: ListHandle): INTEGER;
  229.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  230.     INLINE $3F3C, $0008, $A9E7;
  231.     {$ENDC}
  232. PROCEDURE LDelColumn(count: INTEGER; colNum: INTEGER; lHandle: ListHandle);
  233.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  234.     INLINE $3F3C, $0020, $A9E7;
  235.     {$ENDC}
  236. PROCEDURE LDelRow(count: INTEGER; rowNum: INTEGER; lHandle: ListHandle);
  237.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  238.     INLINE $3F3C, $0024, $A9E7;
  239.     {$ENDC}
  240. FUNCTION LGetSelect(next: BOOLEAN; VAR theCell: Cell; lHandle: ListHandle): BOOLEAN;
  241.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  242.     INLINE $3F3C, $003C, $A9E7;
  243.     {$ENDC}
  244. FUNCTION LLastClick(lHandle: ListHandle): Cell;
  245.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  246.     INLINE $3F3C, $0040, $A9E7;
  247.     {$ENDC}
  248. FUNCTION LNextCell(hNext: BOOLEAN; vNext: BOOLEAN; VAR theCell: Cell; lHandle: ListHandle): BOOLEAN;
  249.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  250.     INLINE $3F3C, $0048, $A9E7;
  251.     {$ENDC}
  252. FUNCTION LSearch(dataPtr: UNIV Ptr; dataLen: INTEGER; searchProc: ListSearchUPP; VAR theCell: Cell; lHandle: ListHandle): BOOLEAN;
  253.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  254.     INLINE $3F3C, $0054, $A9E7;
  255.     {$ENDC}
  256. PROCEDURE LSize(listWidth: INTEGER; listHeight: INTEGER; lHandle: ListHandle);
  257.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  258.     INLINE $3F3C, $0060, $A9E7;
  259.     {$ENDC}
  260. PROCEDURE LSetDrawingMode(drawIt: BOOLEAN; lHandle: ListHandle);
  261.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  262.     INLINE $3F3C, $002C, $A9E7;
  263.     {$ENDC}
  264. PROCEDURE LScroll(dCols: INTEGER; dRows: INTEGER; lHandle: ListHandle);
  265.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  266.     INLINE $3F3C, $0050, $A9E7;
  267.     {$ENDC}
  268. PROCEDURE LAutoScroll(lHandle: ListHandle);
  269.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  270.     INLINE $3F3C, $0010, $A9E7;
  271.     {$ENDC}
  272. PROCEDURE LUpdate(theRgn: RgnHandle; lHandle: ListHandle);
  273.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  274.     INLINE $3F3C, $0064, $A9E7;
  275.     {$ENDC}
  276. PROCEDURE LActivate(act: BOOLEAN; lHandle: ListHandle);
  277.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  278.     INLINE $4267, $A9E7;
  279.     {$ENDC}
  280. PROCEDURE LCellSize(cSize: Point; lHandle: ListHandle);
  281.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  282.     INLINE $3F3C, $0014, $A9E7;
  283.     {$ENDC}
  284. FUNCTION LClick(pt: Point; modifiers: INTEGER; lHandle: ListHandle): BOOLEAN;
  285.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  286.     INLINE $3F3C, $0018, $A9E7;
  287.     {$ENDC}
  288. PROCEDURE LAddToCell(dataPtr: UNIV Ptr; dataLen: INTEGER; theCell: Cell; lHandle: ListHandle);
  289.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  290.     INLINE $3F3C, $000C, $A9E7;
  291.     {$ENDC}
  292. PROCEDURE LClrCell(theCell: Cell; lHandle: ListHandle);
  293.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  294.     INLINE $3F3C, $001C, $A9E7;
  295.     {$ENDC}
  296. PROCEDURE LGetCell(dataPtr: UNIV Ptr; VAR dataLen: INTEGER; theCell: Cell; lHandle: ListHandle);
  297.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  298.     INLINE $3F3C, $0038, $A9E7;
  299.     {$ENDC}
  300. PROCEDURE LRect(VAR cellRect: Rect; theCell: Cell; lHandle: ListHandle);
  301.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  302.     INLINE $3F3C, $004C, $A9E7;
  303.     {$ENDC}
  304. PROCEDURE LSetCell(dataPtr: UNIV Ptr; dataLen: INTEGER; theCell: Cell; lHandle: ListHandle);
  305.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  306.     INLINE $3F3C, $0058, $A9E7;
  307.     {$ENDC}
  308. PROCEDURE LSetSelect(setIt: BOOLEAN; theCell: Cell; lHandle: ListHandle);
  309.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  310.     INLINE $3F3C, $005C, $A9E7;
  311.     {$ENDC}
  312. PROCEDURE LDraw(theCell: Cell; lHandle: ListHandle);
  313.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  314.     INLINE $3F3C, $0030, $A9E7;
  315.     {$ENDC}
  316.  
  317. PROCEDURE LGetCellDataLocation(VAR offset: INTEGER; VAR len: INTEGER; theCell: Cell; lHandle: ListHandle);
  318.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  319.     INLINE $3F3C, $0034, $A9E7;
  320.     {$ENDC}
  321. {$IFC NOT TARGET_OS_MAC }
  322. { QuickTime 3.0 }
  323. PROCEDURE LSetLDEF(proc: ListDefProcPtr; lHandle: ListRef); C;
  324. {$ENDC}
  325.  
  326. {$IFC OLDROUTINENAMES }
  327. PROCEDURE LDoDraw(drawIt: BOOLEAN; lHandle: ListHandle);
  328.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  329.     INLINE $3F3C, $002C, $A9E7;
  330.     {$ENDC}
  331. PROCEDURE LFind(VAR offset: INTEGER; VAR len: INTEGER; theCell: Cell; lHandle: ListHandle);
  332.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  333.     INLINE $3F3C, $0034, $A9E7;
  334.     {$ENDC}
  335. {$ENDC}  {OLDROUTINENAMES}
  336.  
  337.  
  338. {$ALIGN RESET}
  339. {$POP}
  340.  
  341. {$SETC UsingIncludes := ListsIncludes}
  342.  
  343. {$ENDC} {__LISTS__}
  344.  
  345. {$IFC NOT UsingIncludes}
  346.  END.
  347. {$ENDC}
  348.